//导入env.js 服务器地址
import host from './env.js'
import axios from 'axios'
import {
  ElMessage
} from 'element-plus'
//创建请求实例
const instance = axios.create({
  baseURL: host, //服务器地址
  timeout: 5000 //5s超时时长
})

// 添加响应拦截器
instance.interceptors.response.use(function(response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  if (response.status == 200) {
    //获取接口数据
    let rs = response.data;      
    if(rs.code == 200) {
          //将rs封装成promise对象返回
           return Promise.resolve(rs)
    }

    //不正常 弹框提示错误信息
    ElMessage.error(rs.msg)

  }
  return Promise.resolve({});
}, function(error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

//对外暴露的请求方法
export default {
  /**
   * get请求
   * @param {*} url 接口的相对地址
   * @param {*} params  请求的参数是一个对象 请求时会将对象中的属性拼接成字符串到地址上
   * @returns
   */
  get(url, params) {
    return instance.get(url, {
      params
    })
  },
  /**
   * post 请求
   * @param {*} url
   * @param {*} data 请求数据
   * @returns
   */
  post(url, data) {
    return instance.post(url, data)
  },
  /**
   * put请求
   * @param {*} url
   * @param {*} data
   * @returns
   */
  put(url, data) {
    return instance.put(url, data)
  },
  /**
   * delete请求
   * @param {*} url
   * @param {*} params
   * @returns
   */
  delete(url, params) {
    return instance.delete(url, {
      params
    })
  }
}
